#pragma once

#include <Ogre.h>
#include "DefaultCube.h"
#include "BtOgrePG.h"
#include "BtOgreGP.h"
#include "BtOgreExtras.h"

enum PlayerNumber
{
	Player_One,
    Player_Two,
	Player_Three,
	Player_Four,
};

class BasePlayer
{
public:
	BasePlayer(Ogre::String name, PlayerNumber pNumber, Ogre::ColourValue pColour, Ogre::Vector3 pPos, Ogre::SceneManager* sceneMgr);
	~BasePlayer(void);

	void moveLeft();
	void moveRight();
	void moveUp();
	void moveDown();
	void jump();

	void updatePlayer(double timeSinceLastFrame);
	btRigidBody					*m_PlayerBody;
	Ogre::SceneNode*			m_PlayerNode;

private:

	Ogre::Entity*				m_PlayerEntity;
	Ogre::Vector3				m_TranslateVector;
	Ogre::Real					m_MoveSpeed;
	Ogre::Degree				m_RotateSpeed;
	float						m_MoveScale;
	Ogre::Degree				m_RotScale;

	DefaultRectangle*			m_PlayerCube;

	PlayerNumber				m_PlayerNumber;

	Ogre::SceneManager*			m_pSceneMgr;
    btCollisionShape			*m_PlayerShape;
	BtOgre::RigidBodyState *	playerState;
};


